Звіт по Курсовій роботі з дисципліни: “Комп’ютерна схемотехніка: “Спеціалізований обчислювач”

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2013
Тип роботи:
Курсова робота
Предмет:
Комп’ютерна схемотехніка

Частина тексту файла

Міністерствоосвіти і науки,молоді та спортуУкраїни Національнийуніверситет „Львівськаполітехніка” Кафедра ЕОМ / Звіт по Курсовій роботі з дисципліни: “Комп’ютерна схемотехніка: “Спеціалізований обчислювач” З А В Д А Н Н Я Розробити спеціалізований обчислювач, що має відповідати наступним вимогам : структурна схема обчислювача : мікропрограмний автомат Мілі; робоча формула : Yi = ( Xi * N) mod 216, де 9 ≤ i ≤ 15 ( значення N та i задаються керівником курсового проекта ); формат даних : 16 бітний беззнаковий двійковий код з фіксованою комою ( тобто коди від (0).0000 0000 0000 0000 до (0).1111 1111 1111 1111 ); інформаційний обмін здійснюється через паралельну 16-ти розрядну двонаправлену шину даних за допомогою додаткових сигналів синхронізації ( рівні сигналів сумісні з ТТЛ ); керуючий автомат реалізувати на основі ПЗП та регістра; напруга живлення та тактові імпульси надходять від зовнішнього джерела, а сигнал початкового скидання формується локально. Задана константа : A6CD16=1010 0110 1100 11012 Розробка та моделювання спеціалізованого обчислювача / Результати моделювання: Принципова схема:  VHDL – код складових обчислювача: RAM.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entityramis port( CE : in STD_LOGIC; WE : in STD_LOGIC; OE : in STD_LOGIC; AD : in STD_LOGIC_VECTOR(10 downto 0); D : inout STD_LOGIC_VECTOR(7 downto 0) ); endram; architectureramoframis type MEM isarray(0 to 2047) of std_logic_vector (7 downto 0); begin PROCESS(AD, CE, OE, WE, D) TYPE ram_array IS ARRAY (0 TO 2047) OF BIT_VECTOR(7 DOWNTO 0); VARIABLE index : INTEGER := 0; VARIABLE ram_store : ram_array; BEGIN IF CE = '0' THEN index := 0; FOR i IN AD'RANGE LOOP IF AD(i) = '1' THEN index := index + 2**i; END IF; END LOOP; IF rising_edge(WE) THEN ram_store(index) := To_bitvector(D); ELSIF OE = '0' THEN D <= To_StdlogicVector(ram_store(index)); ELSE D <= "ZZZZZZZZ"; END IF; ELSE D <= "ZZZZZZZZ"; END IF; END PROCESS; endram; Buf.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entityBuf is port( Dir : in STD_LOGIC; OE : in STD_LOGIC; A :inout STD_LOGIC_VECTOR(7 downto 0); B :inout STD_LOGIC_VECTOR(7 downto 0) ); endBuf; --}} End of automatically maintained section architectureBuf of Buf is begin A<=B when (OE = '0' and Dir = '0') else (others =>'Z'); B<=A when (OE = '0' and Dir = '1') else (others =>'Z'); endBuf; Reg.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entity RG is port( CLK : in STD_LOGIC; CLR : in STD_LOGIC; DSR : in STD_LOGIC; DSL : in STD_LOGIC; S0 : in STD_LOGIC; S1 : in STD_LOGIC; D : in STD_LOGIC_VECTOR(7 downto 0); Q : out STD_LOGIC_VECTOR(7 downto 0) ); end RG; --}} End of automatically maintained section architecture RG of RG is SIGNAL INT_DAT :std_logic_vector (7 downto 0); SIGNAL S1_S0 :std_logic_vector (1 downto 0); begin Q<=INT_DAT; S1_S0 <= S1&S0; process (CLK, CLR) begin if CLR ='0' then INT_DAT<=(others =>'0') ; elsifrising_edge(CLK) then case S1_S0 is when "01" => INT_DAT <= INT_DAT (6 downto 0) & DSR; when "10" => INT_DAT <= DSL & INT_DAT(7 downto 1); when "11" => INT_DAT <= D; when others => end case; end if; end process ; end RG; Sum.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; useIEEE.STD_LOGIC_UNSIGNED.all; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Sum is port( C0 : in STD_LOGIC; A : in STD_LOGIC_VECTOR(3 downto 0); B : in STD_LOGIC_VECTOR(3 downto 0); C4 : out STD_LOGIC; P : out STD_LOGIC_VECTOR(3 downto 0) ); end Sum; --}} End of automatically maintained section architectureSum_arc of Sum is signaltmp: std_logic_vector(4 downto 0); begin tmp<= conv_std_logic_vector((conv_integer(A) + conv_integer(B) + conv_integer(C0)), 5); P <= tmp(3 downto 0); C4 <= tmp(4); endSum_arc; Counter.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter is port( L : in STD_LOGIC; -- вхідпопередньогозапису R : in STD_LOGIC; -- скидтригерів в "0" pr : in STD_LOGIC; -- вхід "прямийрахунок" zr : in STD...
Антиботан аватар за замовчуванням

04.06.2014 22:06

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини